﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

using Padelcenter.Common;
using Padelcenter.DataAccess;

namespace Padelcenter.BusinessLogic.Get
{
    public class GetUsuario : IBusinessLogic
    {
        public GetUsuario() { }

        public void Invoke()
        {
            Usuario_Select oUsuarioSelect = new Usuario_Select();
            oUsuarioSelect.Usuario = this.Usuario;
            this.Resultset = oUsuarioSelect.Get();
        }

        public List<Usuario> UsuarioList()
        {
            this.Invoke();

            List<Usuario> listaUsuario = new List<Usuario>();

            DataTable dTable = new DataTable();
            dTable = this.Resultset.Tables[0];

            if (dTable.Rows.Count > 0)
            {
                Usuario oUsuario;
                foreach (DataRow r in dTable.Rows)
                {
                    oUsuario = new Usuario();

                    oUsuario.IdUsuario = Convert.ToInt32(r["idUsuario"]);
                    oUsuario.Email = r["Email"].ToString();
                    oUsuario.Password = r["Pwd"].ToString();
                    oUsuario.Nombre = r["Nombre"].ToString();
                    oUsuario.Apellido = r["Apellido"].ToString();
                    oUsuario.FechaNacimiento = Convert.ToDateTime(r["FechaNacimiento"].ToString());
                    oUsuario.Sexo = r["Sexo"].ToString();

                    TipoDocumento oTipoDocumento = new TipoDocumento();
                    oTipoDocumento.IdTipoDocumento = Convert.ToInt32(r["idTipoDocumento"].ToString());
                    GetTipoDocumento oGetTipoDocumento = new GetTipoDocumento();
                    oGetTipoDocumento.TipoDocumento = oTipoDocumento;
                    
                    oUsuario.TipoDocumento = oGetTipoDocumento.TipoDocList()[0];
                    oUsuario.NroDocumento = r["NroDocumento"].ToString();
                    oUsuario.Telefono = r["Telefono"].ToString();
                    oUsuario.Movil = r["Movil"].ToString();
                    oUsuario.FechaAlta = Convert.ToDateTime(r["FechaAlta"].ToString());
                    oUsuario.Activo = Convert.ToBoolean(r["Activo"]);

                    listaUsuario.Add(oUsuario);
                }
            }

            return listaUsuario;
        }

        private DataSet _resultset;
        private Usuario _usuario;

        public Usuario Usuario
        {
            get { return this._usuario; }
            set { this._usuario = value; }
        }

        public DataSet Resultset
        {
            get { return _resultset; }
            set { _resultset = value; }
        }
    }
}
